A digital multiplexer (MUX) is a device which contains one output, two or more data inputs and one or more select inputs. It has a wide variety of uses in electronics. Generally, the number of data inputs is equal to 2.sup.n where n=the number of select inputs. For example, a 4-input MUX would require 2 select inputs because there are 4 possible binary states using two lines. A truth table for a 4-input MUX is shown below:
TABLE I ______________________________________ Select Inputs Data Inputs.sup.a Outputs S1 S0 D3 D2 D1 D0 Y ______________________________________ 0 0 X X X 0 0 0 0 X X X 1 1 0 1 X X 0 X 0 0 1 X X 1 X 1 1 0 X 0 X X 0 1 0 X 1 X X 1 1 1 0 X X X 0 1 1 1 X X X 1 ______________________________________ .sup.a X = don't care
One characteristic of a standard digital MUX is that once the select input(s) change, the output will begin to reflect the newly selected data input as soon as the select input propagates through the internal logic. If the data input signals being selected are asynchronous to each other, the output pulse width may be narrower than the narrowest data input pulse width. This is called a "glitch". This causes significant problems in digital systems because a sub-minimum pulse width can violate the timing specification and requirements for other elements in the system causing a variety of operational malfunctions which may range from transitory to more permanent crashes.
Accordingly, there is a need for smooth, glitchless switching between asynchronous digital inputs to a multiplexer.